package com.settlement.system.model.entity.common;

import java.math.BigDecimal;
import java.util.Date;
import java.io.Serializable;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

/**
 * 微信小程序-资金账单
 * @author Ximi
 * @since 2020-06-16
 */
@Data
@ExcelIgnoreUnannotated
@HeadStyle(fillBackgroundColor = 9,fillForegroundColor = 9)
@HeadRowHeight(value = 20)
@HeadFontStyle(fontHeightInPoints = 14)
public class TblWcXcxCapitalBill extends BaseModel implements Serializable {


    /**
     * 店铺编码
     */
    @ExcelProperty(value = "店铺编码")
    @ApiModelProperty(value = "店铺编码",required = true)
    @NotNull(message = "店铺编码不能为空")
    private String shopNo;

    /**
     * 店铺名称
     */
    @ExcelProperty(value = "店铺名称")
    @ApiModelProperty(value = "店铺名称")
    private String shopName;

    /**
     * 日期
     */
    @ExcelProperty(value = "日期")
    @ApiModelProperty(value = "日期",required = true)
    @JsonFormat(pattern="yyyy/MM/dd HH:mm:ss",timezone = "GMT+8")
    @NotNull(message = "日期不能为空")
    private Date exchangeDate;

    /**
     * 业务类型
     */
    @ExcelProperty(value = "业务类型")
    @ApiModelProperty(value = "业务类型",required = true)
    @NotNull(message = "业务类型不能为空")
    private String businessType;

    /**
     * 收入笔数
     */
    @ExcelProperty(value = "收入笔数")
    @ApiModelProperty(value = "收入笔数",required = true)
    @NotNull(message = "收入笔数不能为空")
    private Integer incomeCount;

    /**
     * 收入金额(元)
     */
    @ExcelProperty(value = "收入金额(元)")
    @ApiModelProperty(value = "收入金额(元)")
    private BigDecimal incomeAmount;

    /**
     * 支出笔数
     */
    @ExcelProperty(value = "支出笔数")
    @ApiModelProperty(value = "支出笔数")
    private Integer paymentCount;

    /**
     * 支出金额(元)
     */
    @ExcelProperty(value = "支出金额(元)")
    @ApiModelProperty(value = "支出金额(元)",required = true)
    @NotNull(message = "支出金额不能为空")
    private BigDecimal paymentAmount;

    /**
     * 收支净额(元)
     */
    @ExcelProperty(value = "收支净额(元)")
    @ApiModelProperty(value = "收支净额(元)",required = true)
    @NotNull(message = "收支净额(元)不能为空")
    private BigDecimal incomePaymentAmount;



    public String getShopNo() {
        return shopNo;
    }

    public void setShopNo(String shopNo) {
        this.shopNo = shopNo;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public Date getExchangeDate() {
        return exchangeDate;
    }

    public void setExchangeDate(Date exchangeDate) {
        this.exchangeDate = exchangeDate;
    }

    public String getBusinessType() {
        return businessType;
    }

    public void setBusinessType(String businessType) {
        this.businessType = businessType;
    }

    public Integer getIncomeCount() {
        return incomeCount;
    }

    public void setIncomeCount(Integer incomeCount) {
        this.incomeCount = incomeCount;
    }

    public BigDecimal getIncomeAmount() {
        return incomeAmount;
    }

    public void setIncomeAmount(BigDecimal incomeAmount) {
        this.incomeAmount = incomeAmount;
    }

    public Integer getPaymentCount() {
        return paymentCount;
    }

    public void setPaymentCount(Integer paymentCount) {
        this.paymentCount = paymentCount;
    }

    public BigDecimal getPaymentAmount() {
        return paymentAmount;
    }

    public void setPaymentAmount(BigDecimal paymentAmount) {
        this.paymentAmount = paymentAmount;
    }

    public BigDecimal getIncomePaymentAmount() {
        return incomePaymentAmount;
    }

    public void setIncomePaymentAmount(BigDecimal incomePaymentAmount) {
        this.incomePaymentAmount = incomePaymentAmount;
    }

}
